package com.sky.context;

public class BaseContext {

    // 使用ThreadLocal来存储每个线程的独立变量，避免线程间的数据冲突
    public static ThreadLocal<Long> threadLocal = new ThreadLocal<>();

    /**
     * 设置当前线程的ID
     * @param id 要设置的ID
     */
    public static void setCurrentId(Long id) {
        // 将传入的ID存储到当前线程的ThreadLocal变量中
        threadLocal.set(id);
    }

    /**
     * 获取当前线程的ID
     * @return 当前线程的ID
     */
    public static Long getCurrentId() {
        // 从当前线程的ThreadLocal变量中获取ID
        return threadLocal.get();
    }

    /**
     * 移除当前线程的ID
     */
    public static void removeCurrentId() {
        // 从当前线程的ThreadLocal变量中移除ID，避免内存泄漏
        threadLocal.remove();
    }

}
